package cc.wanforme.fsync.util;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LoggerTool {
    // depth 2
    public static StackTraceElement getCallerElement(int depth) {
        StackTraceElement[] els = Thread.currentThread().getStackTrace();
        // System.out.println(Arrays.toString(els));
        return els != null && els.length >= depth ? els[depth-1] : null;
    }
    // depth 3
    public static String getCallerClass(int depth) {
        StackTraceElement el = getCallerElement(depth);
        return el != null ? el.getClassName() : null;
    }
    // depth 4
    public static Logger getLogger() {
        // 调用 getLogger() 的是在第5层
        String name = getCallerClass(5);
        return LoggerFactory.getLogger(name);
    }

//    public static void main(String[] args) {
//        // depth 5，被调用是在第5
//        System.out.println(getLogger());
//    }
}
